I started learning programming with frameworks - and it's not such a bad idea

Jun 15, 2020

Quite controversial topic to discuss among many developers. Almost everywhere, you can read - start learning programming from basics, don't touch any framework before you are familiar with vanilla JS. I want to show you - on my example - it's not 100% true, but I can't guarantee it will work for you too.

But first, true is always true - learn basics, that's for sure. I can't disagree with it, you need to know basics of anything before you start digging deeper in any area.

My story

I need to tell my background first, to get a full context of how and why I skip most of the vanilla JS parts at the beggining of my career.

  1. I started programming using bigger calibers, it was C++, C#, python - I get true basics (sometimes more than that) in all those three languages. I think, it gives me some good background in terms of general programming.
  2. I learned basics of HTML and CSS. By basics I mean things like:

    • what are the HTML tags,
    • what's the difference between div and span,
    • why we have some many tags,
    • how to style elements using CSS,
    • what are the most fundamentals CSS attributes
    • how browsers reads the HTML and CSS
  3. I learned Javascript fundamentals, basic programming directives, simple operations etc - and some jQuery to get familiar with what programmer can do with JS.
  4. I spent some time in Node.js. I came to the front-end from C#, so I wanted to do backend stuff at first 🤷
  5. After some CRUD APIs, some websites powered by pug or handlebars I decided to go with... React.

    React wasn't my first choice, I wanted to learn Angular as React seemed to me as a toy, much less powerful than Angular, but then on one of the facebook groups I was in, other users started to form a group to buy a React course (cheaper if buying more entries) - that's how it started.

  6. React was so easy to understand for me that I was able to create fully functional websites and apps really quickly. Never ever writing a vanilla JS application.

By this point, you can say - Ok, he learned how to write web applications with React that's all his skills, he is a React Developer - but I was aware of that, I knew only React and some basics node.js, that was all - and this is the best part. I haven't stop in this moment, I was able to create websites and application, get a job and that could be all, but thankfully not.

Learning React at first place, taught me how to use modern Javascript, how web applications works, how to keep state, basics of performance (do I really need to update this element right now), working with data and so on and so on... Right now, being able to work on commercial projects I could easily expand my programming knowledge without rush to learn as much as I can to get a job - I already had one.

I started to explore why something like React exists, what problems it solves and how they are solved, is it different from other libraries/frameworks, how Javascript looks like before ES6, why so much people complains about JavaScript - where it's good where it's not. All those fundamentals which are a must have for mid/senior programmers are not so important for Juniors. When starting your career you should know true basics and be able to start working with other developers as quickly as possible and you can do so by learning a framework. But remember, it's your duty to explore everything you skipped just after you know how solve simple problems so you become a serious programmer. You need to know the general history of programming - how it evolves to the place it is know, how your programming language evolves, what are the principles, design patterns you should follow.

The point is, I started with framework skipping the "vanilla js" part just to get quickly into this world, but after getting familiar with it - my never-ending learning journey started.